home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
compuserve-file-archive
/
09 Application Software
/
CB117.BIN
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2019-04-13
|
21KB
|
669 lines
2 IFPEEK(828)=0THENPOKE828,1:LOAD"KILLCURSOR",8,1
4 SYS49152:GOTO100
8 GETAN$:IFAN$=""THEN8
9 RETURN
100 REM
110 REM "CHECKBOOK" BY ARNOLD SOLOF
120 REM 3/23/85
130 REM
200 REM
210 REM ASSIGN VARIABLES
220 REM
230 DIM ME$(20),DA$(200),CH$(200),PA$(200),AM(200),T1$(200),A1(200),O$(99)
240 DIM T2$(200),A2(200),DS$(200),CA(31),CA$(31),M1$(200),MK$(200),TT(31)
250 DIM MO$(12),FM$(12),RC$(200),RA(200),NM$(12),SM$(200),MN$(12),XX$(12)
260 DEF FN R2 (X)=INT(X*100+.5)/100 :REM FUNCTION "R2" ROUNDS # TO 2 DEC PLACES
262 DEF FN CS(LN)=(40-LN)/2:DEF FN CP(LN)=(80-LN)/2:REM CENTER SCREEN/PRINTER
270 DATA ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,ELEVEN,TWELVE
271 DATA THIRTEEN,FOURTEEN,FIFTEEN,SIXTEEN,SEVENTEEN,EIGHTEEN,NINETEEN,TWENTY
272 DATA TWENTY-ONE,TWENTY-TWO,TWENTY-THREE,TWENTY-FOUR,TWENTY-FIVE,TWENTY-SIX
273 DATA TWENTY-SEVEN,TWENTY-EIGHT,TWENTY-NINE,THIRTY,THIRTY-ONE,THIRTY-TWO
274 DATA THIRTY-THREE,THIRTY-FOUR,THIRTY-FIVE,THIRTY-SIX,THIRTY-SEVEN
275 DATA THIRTY-EIGHT,THIRTY-NINE,FORTY,FORTY-ONE,FORTY-TWO,FORTY-THREE
276 DATA FORTY-FOUR,FORTY-FIVE,FORTY-SIX,FORTY-SEVEN,FORTY-EIGHT,FORTY-NINE
277 DATA FIFTY,FIFTY-ONE,FIFTY-TWO,FIFTY-THREE,FIFTY-FOUR,FIFTY-FIVE
278 DATA FIFTY-SIX,FIFTY-SEVEN,FIFTY-EIGHT,FIFTY-NINE,SIXTY,SIXTY-ONE
279 DATA SIXTY-TWO,SIXTY-THREE,SIXTY-FOUR,SIXTY-FIVE,SIXTY-SIX,SIXTY-SEVEN
280 DATA SIXTY-EIGHT,SIXTY-NINE,SEVENTY,SEVENTY-ONE,SEVENTY-TWO,SEVENTY-THREE
281 DATA SEVENTY-FOUR,SEVENTY-FIVE,SEVENTY-SIX,SEVENTY-SEVEN,SEVENTY-EIGHT
282 DATA SEVENTY-NINE,EIGHTY,EIGHTY-ONE,EIGHTY-TWO,EIGHTY-THREE,EIGHTY-FOUR
283 DATA EIGHTY-FIVE,EIGHTY-SIX,EIGHTY-SEVEN,EIGHTY-EIGHT,EIGHTY-NINE,NINETY
284 DATA NINETY-ONE,NINETY-TWO,NINETY-THREE,NINETY-FOUR,NINETY-FIVE
285 DATA NINETY-SIX,NINETY-SEVEN,NINETY-EIGHT,NINETY-NINE
286 FOR I=1TO99:READ O$(I):NEXT
290 DATAJANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER
300 DATA OCTOBER,NOVEMBER,DECEMBER
310 FORI=1TO12:READMO$(I):NEXT
390 D$="":R$=""
395 L$="----------------------------------------":L$=L$+L$
396 L1$=L$+"---------------"
400 FOR I=1TO6:README$(I):NEXT:D$=D$+ME$(3)+D$
410 DATA "[159]A[146]CCEPT E[146]DIT C[146]ANCEL[145][129]","[159]OPTION?[145][146]"
420 DATA " [145]","PRINT CHECK?[146][145]"
430 DATA "ANY KEY[145]","[129]E,R,S,C,+,-,[255],\,%,B,D,N,?[146] (_ = DONE)[145]"
470 CA$(0)="DEPOSIT":T$=CHR$(16):ES$=CHR$(27)+CHR$(27):P1$=ES$+CHR$(84)
472 P2$=ES$+CHR$(73):P3$=ES$+CHR$(67):P4$=ES$+CHR$(68):P5$=ES$+CHR$(11):NP$="1"
490 GOSUB6300:GOTO2000
500 REM
510 REM DATA ENTRY SCREEN
520 REM
525 BA=FNR2(BA)
530 POKE53280,0:POKE53281,0:PRINT"[147]";TAB(7)"[158]CHECKBOOK --- ";D1$""
540 PRINTTAB(12)"[159]BALANCE =";BA"[146]"
550 PRINT"[129]DATE ----->"
560 PRINT "CHECK # -->"
570 PRINT "PAYEE ---->"
580 PRINT "AMOUNT --->"
590 PRINT "# DBMTS -->"
600 PRINT " #1 TYPE ->"
610 PRINT " AMT -->"
620 PRINT " #2 TYPE ->"
630 PRINT " AMT -->"
640 PRINT "MEMO ----->"
650 RETURN
700 :
701 REM DISPLAY RECORD ON SCREEN
702 :
710 GOSUB 500:PRINT"REC#";X"[146]";TAB(38)MK$(X)
720 PRINT"";R$;DA$(X)
730 PRINT"";R$;CH$(X)
735 IFCH$(X)="*"THENPRINT"";R$;"[158]DEPOSIT[146]":GOTO745
740 PRINT"";R$;PA$(X)
745 PRINT"";R$;AM(X)
750 PRINT"";R$;DS$(X)
755 PRINT"";R$;T1$(X)
760 PRINT"";R$;A1(X)
765 PRINT"";R$;T2$(X)
767 PRINT"";R$;A2(X)
770 PRINT"";R$;M1$(X)
775 RETURN
800 REM
810 REM DISPLAY DEFAULT VALUES
820 REM
830 PRINT"";R$;DA$;"";R$;"1";"";R$;SC:RETURN
840 :
850 REM INITIALIZE VAR. FOR DATA ENTRY
860 :
870 PA$(X)="":AM(X)=0:T1$(X)="":T2$(X)="":A1(X)=0:A2(X)=0:M1$(X)=""
880 MK$(X)="-":RETURN
1000 REM
1010 REM INPUT DATA
1020 REM
1030 PRINT"";R$;:INPUT DA$(X)
1031 M$=LEFT$(DA$(X),2):Y$=MID$(DA$(X),5,2):A$=MID$(DA$(X),3,2)
1032 A=VAL(A$):Y=VAL(Y$):M=VAL(M$)
1033 IFM<1ORM>12ORY<85ORY>90ORA<1ORA>31THEN1030
1035 PRINTR$"";:INPUTCH$(X):GOTO1090
1040 PRINTR$"";:INPUTPA$(X):IFPA$(X)="DEPOSIT"THENPA$(X)="D":GOTO1200
1042 IF PA$(X)="D"THEN 1200
1043 IFPA$(X)="VOID"THENMK$(X)="X":AM(X)=0:A1(X)=0:A2(X)=0:GOSUB700:GOTO1120
1044 IFPA$(X)="*"ORPA$(X)="-"ORPA$(X)=""THENPRINT"[145][145][145]":GOTO1040
1045 PRINTR$"";:INPUTAM$:AM(X)=VAL(AM$):IFAM(X)=0THENPRINT"[145][145][145]":GOTO1045
1047 AM(X)=FN R2(AM(X))
1050 PRINTR$"";:INPUTDS$(X)
1051 IFVAL(DS$(X))<1ORVAL(DS$(X))>2THENPRINT"[145][145][145]":GOTO1050
1052 IFDS$(X)="1"THENA1(X)=AM(X):T2$(X)="-":A2(X)=0
1055 PRINTR$"";:INPUTT1$(X)
1056 IFVAL(T1$(X))<1ORVAL(T1$(X))>HCTHENPRINT"[145][145][145]":GOTO1055
1057 IFDS$(X)="1"THENA1(X)=AM(X):PRINTR$;"";A1(X):PRINT"":GOTO1070
1060 PRINTR$;:INPUTA1$:A1(X)=VAL(A1$):A1(X)=FN R2(A1(X))
1062 IFA1(X)=0THENPRINT"[145][145]":GOTO1060
1065 PRINTR$"";:INPUTT2$(X)
1067 IFVAL(T2$(X))<1ORVAL(T2$(X))>HCTHENPRINT"[145][145][145]":GOTO1065
1069 A2(X)=AM(X)-A1(X):A2(X)=FNR2(A2(X)):PRINTR$"";A2(X)
1070 PRINTR$"";:INPUT M1$(X)
1075 IFFC=1THEN15040
1080 GOTO3040
1090 IFLEFT$(CH$(X),1)="-"THENCH$(X)="-":PRINT"[145]";R$"- "
1095 C=VAL(CH$(X)):IFC<1000ORC>9999THENIFCH$(X)<>"*"ANDCH$(X)<>"-"THEN1110
1100 GOTO1040
1110 PRINT"[145][145][145]":GOTO1035
1120 IFFC=1THEN15040
1130 GOTO3085
1200 REM
1210 REM INPUT DEPOSIT
1220 REM
1230 CH$(X)="*":DS$(X)="1":T1$(X)="D":T2$(X)="-":A2(X)=0:SC=SC-1
1240 PRINT"";R$;"* ":PRINT"";R$;"[158]DEPOSIT[146]"
1250 PRINTR$"";:INPUTAM$:AM(X)=VAL(AM$):AM(X)=FNR2(AM(X)):A1(X)=AM(X)
1255 IFAM(X)=0THENPRINT"[145][145][145]":GOTO1250
1257 PRINTR$" ";T1$(X):PRINTR$;" ";A1(X):PRINT"";R$;" "
1260 PRINTR$;" ":PRINTR$"";:INPUTM1$(X)
1270 PRINT D$;ME$(1):GOSUB8
1290 IF AN$="E"THEN PRINTD$;ME$(3):SC=SC+1:GOTO1000
1295 IF FC=1THEN15070
1300 IFAN$="C"THEN X=X-1:GOSUB700:GOTO3200
1310 IF AN$<>"A"THEN1270
1320 BA=BA+AM(X):HE=HE+1:A1(0)=AM(X):GOSUB700:GOTO3200
2000 REM
2010 REM MAIN MENU
2020 REM
2025 POKE53280,6:POKE53281,6
2027 PRINT"[147]";TAB(11)"[150]*** CHECKBOOK ***":PRINTTAB(12)"[152]BY ARNOLD SOLOF"
2030 PRINTTAB(15)"[158]MAIN MENU":PRINTTAB(15)"[144][184][184][184][184][184][184][184][184][184]"
2040 PRINT"1. ENTER CHECKS/DEPOSITS"
2060 PRINT"2. MONTHLY SUMMARY"
2070 PRINT"3. RECONCILE CHECKBOOK WITH STATEMENT"
2120 PRINT"4. EDIT/DISPLAY CATEGORY NAMES"
2130 PRINT"5. QUARTERLY SUMMARY"
2200 PRINT D$;ME$(2):GOSUB8
2220 AN=VAL(AN$):IFAN<1ORAN>5THENPRINT"[145][145]":GOTO2200
2230 ON AN GOTO16000,20000,23000,6000,24000
2315 YM$=RIGHT$(MY$,2)+LEFT$(MY$,2)
3000 REM
3010 REM ENTER CHECKS/DEPOSITS
3020 REM
3030 X=HE+1:TN=SC:SC=SC+1:GOSUB 500:PRINT"REC#";X:GOSUB850:GOSUB800:GOTO1000
3040 PRINT D$;ME$(1)
3050 GET AN$:IFAN$=""THEN 3050
3060 IF AN$="C" THEN X=X-1:SC=SC-1:GOSUB700:GOTO3200
3070 IF AN$="E"THEN PRINTD$;ME$(3):GOTO1000
3080 IFAN$<>"A"THEN3050
3085 IFCH$(X)="-"ORPA$(X)="VOID"ORNP$="0"THEN3125
3090 PRINTD$;ME$(4):GOSUB8
3110 IFAN$="Y"THEN GOSUB3300:GOSUB3400:GOSUB5000:GOTO3125
3120 IFAN$<>"N"THEN3090
3125 BA=BA-AM(X):HE=HE+1:GOSUB700:IFVAL(CH$(X))<>SCTHENSC=TN:REM HIGH ENTRY#
3200 PRINTD$;ME$(2);D$;ME$(6)
3210 GOSUB8
3220 IF AN$="E"THEN3030
3222 IF AN$="R"THEN 12000
3223 IF AN$="S"THEN 18000
3224 IF AN$="C"THEN 15000
3230 IFAN$="_"THENGOSUB3250:RUN
3231 IF AN$="+"THEN13000
3232 IF AN$="-"THEN14000
3233 IF AN$=CHR$(222)THEN10000:REM (null)
3234 IF AN$="B"THEN10200
3235 IF AN$="?"THEN11000
3236 IF AN$="\"THEN GOSUB3250:GOTO3200
3237 IF AN$="%"THENGOSUB16100:GOSUB700:GOTO3200
3238 IF AN$="N"THEN GOSUB4000:GOSUB700:GOTO3200
3239 IF AN$="D"THEN PRINT"[147]":GOSUB16003:GOSUB700:GOTO3200
3240 GOTO3210
3250 GOSUB17000:GOSUB8500:GOSUB23900:GOSUB6400:RETURN
3300 PRINT"[147]";TAB(13);"ENTER ADDRESS":PRINTTAB(9)"(NO COMMAS OR COLONS)"
3301 A1$="":A2$=""
3302 INPUT"ADDRESS 1[146]";A1$:INPUT"ADDRESS 2[146]";A2$:PRINTD$;ME$(1)
3303 IFA1$=""ANDA2$=""THENRETURN
3305 GOSUB8:IFAN$="E"THEN3302
3310 IFAN$="C"THENA1$="":A2$="":RETURN
3320 IFAN$="A"THENRETURN
3330 GOTO3305
3400 OPEN1,4:PRINT#1,ES$;CHR$(11)"16":CLOSE1:RETURN
4000 REM
4010 REM SET STARTING CHK #
4020 REM
4045 PRINT"[147]";SC;
4050 INPUT"ENTER STARTING CHECK #";SC$:SC=VAL(SC$):IFSC<1ORSC>9999THEN4050
4060 SC=SC-1:RETURN
4100 REM
4110 REM RESET DATE
4120 REM
4130 PRINTD$;"[145][145]RESET DATE"
4140 PRINT"";DA$:INPUT"[145]";DA$
4150 GOSUB700:GOTO3200
5000 REM
5010 REM PRINT CHECK
5020 REM
5030 OPEN1,4:PRINT#1,"MEMO:";
5035 IFT1$(X)="6"THENPRINT#1,"SALARY-PERIOD ENDING: ";PP$:GOTO5040
5037 PRINT#1,M1$(X)
5040 PRINT#1,ES$;CHR$(11)"06"
5041 DT$=DA$(X):GOSUB10500:PRINT#1,T$"42"MM$;DD$;YY$;
5050 PRINT#1,P1$;T$"63$ ******";:RD=AM(X):GOSUB22000:PRINT#1,RD$
5051 GOSUB9000:PRINT#1
5053 PRINT#1,T$"05"PA$(X):PRINT#1,P2$;T$"05 ";A1$:PRINT#1,T$"05";A2$
5070 PRINT#1,ES$;CHR$(11)"10":CLOSE1:A1$="":A2$="":RETURN
6000 REM PAYMENT CATEGORY FILE
6030 REM
6040 REM EDIT AND DISPLAY CATEGORY NAMES
6041 REM
6051 PRINT"[147]";D$;"[145][145]ENTER TOTAL # CATEGORIES (MAX=30)":PRINT" "HC
6052 INPUT"[145]";HC$:A=VAL(HC$):IFA<1ORA>30THEN6051
6054 PRINT"[147]";D$;"[145][145][145]ENTER CHECKBOOK OWNER'S NAME":PRINT" "OW$:INPUT"[145]";OW$
6060 HC=A:S=1:F=15
6070 PRINT"[147][159]";TAB(5);"DISPLAY/EDIT CATEGORY NAMES"
6080 FORI=S TO F:IFI<10THENPRINT" ";
6085 PRINTI;TAB(6);CA$(I)
6090 NEXT
6100 PRINT""
6105 FORI=S TO F
6110 PRINTTAB(4);:INPUTCA$(I)
6120 NEXT
6130 PRINTD$;ME$(2);D$;ME$(1):GOSUB8
6150 IF S=1 AND AN$="A"THENS=16:F=30:GOTO6070
6155 IFS=16 AND AN$="A"THENGOSUB6400:GOSUB6500:GOTO2000
6160 IFAN$="C"THENGOSUB6300:GOTO2000
6180 IF AN$="E"THEN6070
6185 GOTO6130
6300 REM
6310 REM READ CATNAM FILE
6320 REM
6330 OPEN15,8,15:OPEN8,8,8,"CATNAM,S,R":GOSUB7000:FORI=0TO30
6340 INPUT#8,CA$(I):NEXT:INPUT#8,HC:INPUT#8,OW$
6350 INPUT#8,NM:IFNM=0THEN6370
6360 FORI=1TONM:INPUT#8,NM$(I):XX$(I)="-":NEXT
6370 CLOSE8:CLOSE15:RETURN
6400 REM
6410 REM WRITE CATNAME FILE
6420 REM
6425 FORI=0TO30:IFCA$(I)=""THENCA$(I)="-"
6427 NEXT
6430 OPEN15,8,15:OPEN8,8,8,"@0:CATNAM,S,W":GOSUB7000
6440 FORI=0TO30:PRINT#8,CA$(I):NEXT:PRINT#8,HC:PRINT#8,OW$
6450 PRINT#8,NM:FORI=1TONM:PRINT#8,NM$(I):NEXT:CLOSE8:CLOSE15:RETURN
6500 :
6510 REM PRINT CATNAME FILE
6520 :
6530 PRINTD$"[158]PRINT CATEGORY NAME LIST ?[145]":GOSUB8
6540 IFAN$="N"THENRETURN
6550 IFAN$<>"Y"THEN6530
6560 OPEN1,4:PRINT#1,P1$T$"30CATEGORY NAME LIST"P2$:PRINT#1
6562 LN=LEN(OW$):PRINT#1,T$;TAB(FNCP(LN));OW$:PRINT#1
6565 PRINT#1,"HIGHEST ACTIVE CATEGORY =";HC:PRINT#1
6570 FORI=1TO15:PRINT#1,I;T$"05";CA$(I);
6580 PRINT#1,T$"41";I+15;T$"47";CA$(I+15):NEXT:CLOSE1:RETURN
7000 REM
7010 REM CHECK ERROR CHANNEL
7020 REM
7030 INPUT#15,EN,E$,ET,EB
7040 IFEN=0THENRETURN
7050 PRINTD$;EN;E$;ET;EB;" (ANY KEY)[145]":GOSUB8:RETURN
8000 REM
8010 REM READ DATA FILE
8020 REM
8040 OPEN15,8,15:OPEN8,8,8,"MAIN DATA"+MY$+",S,R":GOSUB7000
8045 INPUT#8,BA:INPUT#8,BB
8050 FORI=0TO31:INPUT#8,TT(I):NEXT:REM CAT TOT
8060 INPUT#8,HE
8070 FORI=1TOHE:INPUT#8,AM(I):INPUT#8,DA$(I):INPUT#8,CH$(I):INPUT#8,PA$(I)
8080 INPUT#8,DS$(I):INPUT#8,T1$(I):INPUT#8,A1(I):INPUT#8,T2$(I)
8090 INPUT#8,A2(I):INPUT#8,M1$(I):INPUT#8,MK$(I):NEXT:REM MK$()=MARKER STATMT
8100 CLOSE8:CLOSE15:RETURN
8500 REM
8501 REM WRITE DATA FILE
8510 REM
8520 BA=FNR2(BA)
8540 OPEN15,8,15:OPEN8,8,8,"@0:MAIN DATA"+MY$+",S,W":GOSUB7000
8545 PRINT#8,BA:PRINT#8,BB
8550 FORI=0TO31:PRINT#8,TT(I):NEXT:REM STORE CATEGORY TOTALS
8560 PRINT#8,HE
8570 FORI=1TOHE
8571 IFDA$(I)=""THENDA$(I)="-"
8572 IFCH$(I)=""THENCH$(I)="-"
8573 IFPA$(I)=""THENPA$(I)="-"
8574 IFDS$(I)=""THENDS$(I)="-"
8575 IFT1$(I)=""THENT1$(I)="-"
8576 IFT2$(I)=""THENT2$(I)="-"
8577 IFM1$(I)=""THENM1$(I)="-"
8578 IFMK$(I)=""THENMK$(I)="-"
8579 PRINT#8,AM(I):PRINT#8,DA$(I):PRINT#8,CH$(I):PRINT#8,PA$(I)
8580 PRINT#8,DS$(I):PRINT#8,T1$(I):PRINT#8,A1(I):PRINT#8,T2$(I)
8590 PRINT#8,A2(I):PRINT#8,M1$(I):PRINT#8,MK$(I):NEXT
8600 CLOSE8:CLOSE15:RETURN
9000 REM NUMBER TRANSLATOR
9020 PRINT#1,"***";:AI=INT(AM(X)) :REM INTEGER
9030 AI$=STR$(AI):REM TO A STRING
9040 AI$=RIGHT$(AI$,LEN(AI$)-1):REM STRIP SIGN
9050 IF AI>99999THEN9070
9060 FORI=1TO6-(LEN(AI$)):AI$="0"+AI$:NEXT:REM PAD WITH PRECEDING ZEROS
9070 REM CALCULATE CENTS
9080 CE$=STR$(AM(X)) :REM TO STRING
9090 CE$=RIGHT$(CE$,3) :REM LAST 3 CHARPRINTMM(X)
9100 IFMID$(CE$,1,1)="."THENCE$=RIGHT$(CE$,2):GOTO 9130
9110 IFMID$(CE$,2,1)="."THENCE$=RIGHT$(CE$,1)+"0":GOTO 9130
9120 CE$="00"
9130 REM TRANSLATE #
9140 IF AI=0THENPRINT#1," ZERO";:GOTO9230
9150 N$=MID$(AI$,1,1):GOSUB9270:IFN$="0"THEN9170
9160 PRINT#1," HUNDRED";
9170 N$=MID$(AI$,2,2):GOSUB9270
9180 IF MID$(AI$,1,3)="000" THEN 9200
9190 PRINT#1," THOUSAND";
9200 N$=MID$(AI$,4,1):GOSUB9270:IFN$="0"THEN9220
9210 PRINT#1, " HUNDRED";
9220 N$=MID$(AI$,5,2):GOSUB9270
9230 PRINT#1, " DOLLARS";
9240 PRINT#1, " -- ";CE$;"/100 CENTS ***"
9250 RETURN
9270 REM PRINT NUMBER
9280 N=VAL(N$):IFN=0THENRETURN
9290 PRINT#1, " ";O$(N);:RETURN
10000 :
10010 REM ENTER PAYROLL CHECKS FROM DISK FILE
10020 :
10030 PRINT"[147]";TAB(9)"[158]ENTER PAYROLL FROM DISK":K=0:REM # 0 AMT SKIPPED
10040 PRINT"1. GET PRINTER READY":PRINT"2. ALIGN CHECKS (ANY KEY)[145]":GOSUB8
10060 OPEN15,8,15:OPEN8,8,8,"PAYMERGE,S,R":GOSUB7000:SE=HE
10070 INPUT#8,PP$:INPUT#8,NE:FORJ=1TONE:X=J+SE-K:INPUT#8,AM(X)
10082 INPUT#8,PA$(X):INPUT#8,RT:INPUT#8,HR:INPUT#8,GR:INPUT#8,SS
10084 INPUT#8,FT:INPUT#8,SI:INPUT#8,SU
10086 IF AM(X)=0THENK=K+1:GOTO10110
10090 SC=SC+1:HE=HE+1:CH$(X)=STR$(SC):A=LEN(CH$(X)):CH$(X)=RIGHT$(CH$(X),A-1)
10095 DA$(X)=DA$:DS$(X)="1":T1$(X)="6":A1(X)=AM(X)
10100 T2$(X)="-":A2(X)=0:M1$(X)=PP$:GOSUB10120:GOSUB5000
10110 NEXT:GOSUB7000:CLOSE8:CLOSE15:GOSUB17000:GOSUB700:GOTO3200
10120 REM PRINT CHECKSTUB
10130 :
10135 OPEN1,4:PRINT#1,T$"20";OW$:PRINT#1
10140 PRINT#1,PA$(X):PRINT#1,"PAY PERIOD ENDING:";PP$:PRINT#1
10150 PRINT#1," RATE HOURS GROSS FICA FIT SIT";
10152 PRINT#1,T$"62SUT NET"
10155 PRINT#1,T$"05"RT;T$"13"HR;T$"23"GR;T$"34"SS;
10160 PRINT#1,T$"43"FT;T$"52"SI;T$"61"SU;T$"69"AM(X)
10170 PRINT#1,ES$;CHR$(11)"09":CLOSE1:RETURN
10200 :
10210 PRINTD$;"[145][145]ENTER BEGINNING BALANCE ";D1$;":[146]":PRINT"";BB;D$;
10220 INPUT"[145]";BB:GOSUB17000:GOSUB700:GOTO3200
10500 :
10510 REM CALCULATE DATE DISPLAY STRINGS
10520 :
10530 MM$=LEFT$(DT$,2):MM=VAL(MM$):MM$=MO$(MM)
10540 DD$=MID$(DT$,3,2):DD=VAL(DD$):DD$=STR$(DD)+", "
10550 YY$=MID$(DT$,5,2):YY$="19"+YY$:RETURN
11000 :
11010 PRINT"[147]";TAB(13)"[158]COMMAND SUMMARY[129]"
11020 :
11030 PRINT" E[129] = NEW ENTRY (CHECK/DEPOSIT/OTHER)"
11035 PRINT" R[129] = SEARCH FOR ENTRY BY RECORD #"
11040 PRINT" S[129] = SEARCH FOR ENTRY BY OTHER FIELDS"
11045 PRINT" C[129] = CHANGE AN ENTRY"
11050 PRINT" +[129] = DISPLAY NEXT ENTRY"
11055 PRINT" -[129] = DISPLAY PREVIOUS ENTRY"
11065 PRINT" [255][129] = ENTER PAYROLL CHECKS FROM DISK"
11075 PRINT" %[129] = SET BEG.BAL = END BAL PREV MONTH"
11090 PRINT" B[129] = SET BEGINNING BALANCE FOR MONTH"
11095 PRINT" N[129] = RESET STARTING CHECK#"
11100 PRINT" D[129] = RESET TODAY'S DATE"
11112 PRINT" \[129] = SAVE WORK BUT KEEP SAME MENU"
11115 PRINT" ?[129] = THIS HELP SCREEN"
11118 PRINT" _ = DATA ENTRY COMPLETED, SAVE ON DISK":PRINTD$;"[129](ANY KEY)[145]"
11120 GOSUB8:GOSUB700:GOTO3200
12000 :
12010 REM REC# SEARCH
12030 PRINTD$;"[145]REC#[146] ";:INPUTX$:X=VAL(X$):IFX<1ORX>HETHEN12030
12040 GOSUB700:GOTO3200
13000 :
13010 REM NEXT RECORD (+)
13020 :
13030 X=X+1:IFX>HETHENX=HE:PRINTD$"END OF FILE! (ANY KEY)[145]":GOSUB8:GOTO3200
13040 GOTO12040
14000 :
14010 REM PREVIOUS RECORD (-)
14020 :
14030 X=X-1:IFX<1THENX=1:PRINTD$"END OF FILE! (ANY KEY)[145]":GOSUB8:GOTO3200
14040 GOTO12040
15000 :
15010 REM CHANGE RECORD
15020 :
15030 FC=1:GOSUB15100:GOSUB700:GOTO1000
15040 PRINTD$;ME$(1):GOSUB8
15050 IFCH$(X)="*"ANDAN$="E"THEN1290
15060 IFAN$="E"THEN1000
15070 IFAN$="C"THENFC=0:GOSUB15200:GOTO15093:REM FC= FLAG FOR CHG MODE
15080 IFAN$<>"A"THEN15040
15090 Q=X:GOSUB17000:X=Q:FC=0
15093 IFCH$(X)="*"THENSC=SC+1
15095 GOSUB700:GOTO3200
15100 REM TEMPORARY STORE REC VALUES
15101 T1$=DA$(X):T2$=CH$(X):T3=AM(X):T4$=PA$(X):T5$=DS$(X):T6$=T1$(X)
15110 T6=A1(X):T7$=T2$(X):T7=A2(X):T8$=M1$(X):T9$=MK$(X):RETURN
15200 REM RECOVER STORED REC VALUES
15210 DA$(X)=T1$:CH$(X)=T2$:AM(X)=T3:PA$(X)=T4$:DS$(X)=T5$:T1$(X)=T6$
15220 A1(X)=T6:T2$(X)=T7$:A2(X)=T7:M1$(X)=T8$:MK$(X)=T9$:RETURN
16000 :
16001 REM INITIAL ENTER EDIT DISPLAY
16002 POKE53280,0:POKE53281,0:GOSUB4000:GOSUB16003:GOTO16010
16003 PRINT""TAB(20)"MMDDYY"
16004 PRINT"ENTER TODAY'S DATE";:INPUTDA$:M$=LEFT$(DA$,2):Y$=MID$(DA$,5,2)
16005 A$=MID$(DA$,3,2):A=VAL(A$):Y=VAL(Y$):M=VAL(M$)
16006 IFM<1ORM>12ORY<85ORY>90ORA<1ORA>31THEN16003
16007 RETURN
16010 DT$=DA$:GOSUB10500:D1$=MM$+" "+YY$:MY$=M$+Y$:GOSUB8000
16040 IFEN=62THENGOSUB16100:REM NEW MONTH, GET CURRENT BAL FROM LAST MONTH
16050 X=0:GOSUB700:GOTO3200
16100 REM FETCH BEGINNING BALANCE FROM ENDING BALANCE OF PREVIOUS MONTH
16110 M2=M-1:IFM2=0THENA$="12":Y1=Y-1:Y1$=STR$(Y1):Y1$=RIGHT$(Y1$,2):GOTO16140
16115 A$=STR$(M2):Y1=Y:Y1$=STR$(Y1)
16120 Y1$=RIGHT$(Y1$,2):IFM2>9THENA$=RIGHT$(A$,2):GOTO 16140
16130 A$="0"+RIGHT$(A$,1)
16140 A$=A$+Y1$:OPEN15,8,15:OPEN8,8,8,"MAIN DATA"+A$+",S,R":GOSUB7000
16150 INPUT#8,BB:CLOSE8:CLOSE15:GOSUB17000:RETURN
17000 :
17010 REM CALCULATE MONTHLY TOTALS
17020 :
17025 BA=BB:FORI=0TO31:TT(I)=0:NEXT
17030 FORX=1TOHE:A1=VAL(T1$(X)):A2=VAL(T2$(X))
17035 IFPA$(X)="D"THENBA=BA+AM(X):TT(0)=TT(0)+AM(X):GOTO17050
17040 BA=BA-AM(X):TT(A1)=TT(A1)+A1(X):IFDS$(X)="1"THEN17047
17045 TT(A2)=TT(A2)+A2(X)
17047 TT(31)=TT(31)+AM(X)
17050 NEXT:BA=FN R2(BA):RETURN
18000 :
18010 REM SEARCH FOR ENTRY (S)
18020 :
18030 PRINT"[147]"TAB(15)"SEARCH":PRINT"BY:":PRINT" 1. DATE"
18040 PRINT" 2. CHECK#":PRINT" 3. PAYEE":PRINT" 4. AMOUNT":PRINT" 5. MEMO"
18050 PRINTD$;"[145][145]SEARCH BY: ";:GOSUB8:AN=VAL(AN$)
18060 IFAN<1ORAN>5THEN18000
18135 PRINTAN$:INPUTSE$:I=1
18140 ONVAL(AN$)GOTO 18150,18170,18182,18190,18210
18150 FORI=1TOHE:IFSE$=DA$(I)THEN18310
18160 GOTO18300
18170 FORI=1TOHE:IFSE$=CH$(I)THEN18310
18180 GOTO18300
18182 FORI=1TOHE:IFSE$=PA$(I)THEN18310
18184 GOTO18300
18190 FORI=1TOHE:IFVAL(SE$)=AM(I)THEN18310
18200 GOTO18300
18210 FORI=1TOHE:IFSE$=M1$(I)THEN18310
18220 GOTO18300
18300 NEXT:PRINTD$;"RECORD NOT FOUND (ANY KEY)[145]":GOSUB8:X=0:GOSUB700:GOTO3200
18310 X=I:I=HE+1:GOSUB700:GOTO3200:REM REC FOUND
19000 :
19010 REM CLEAR DATA FILE IN MEMORY
19020 :
19030 BA=0:BB=0:HE=0:FORI=0TO31:TT(I)=0:NEXT:FORI=1TO200
19040 DA$(I)="":CH$(I)="":PA$(I)="":AM(I)=0:DS$(I)="":T1$(I)="":A1(I)=0
19050 T2$(I)="":A2(I)=0:M1$(I)="":MK$(I)="":NEXT:RETURN
20000 :
20010 REM MONTH END SUMMARY
20020 :
20030 OPEN1,4:REM TEMPORARY BALANCE
20040 PRINT"[147]1. LIST ONLY":PRINT"2. LIST + CATEGORIES":PRINTD$"OPTION?[145]"
20045 GOSUB8:IFAN$<"1"ORAN$>"2"THEN20045
20046 IFAN$="1"THENFB=1
20047 GOSUB21200
20050 :
20060 PRINT#1,P1$;CHR$(14);TAB(12)"SUMMARY FOR ";MY$:PRINT#1,CHR$(15):PRINT#1
20065 LN=LEN(OW$):PRINT#1,TAB(FNCP(LN));OW$:PRINT#1
20070 PRINT#1,"BEGINNING BALANCE =";BB;T$"49TOTAL CHECKS =";TT(31)
20080 PRINT#1,"END MONTH BALANCE =";BA;T$"49TOTAL DEPOSITS =";TT(0)
20090 PRINT#1:GOSUB21300:GOSUB21310:GOSUB21000
20100 TB=BB:FOR I=1 TO HE:GOSUB21100:NEXT
20110 :
20200 :
20210 REM CATEGORY SUMMARY
20220 :
20225 IFFB=1THENRUN
20230 PRINT#1:PRINT#1:PRINT#1:GOSUB20500
20235 FOR J=1TOHC:TC=0:GOSUB20300
20240 FOR I=1TOHE:A3=0
20250 IFVAL(T1$(I))=JTHENTC=TC+A1(I):A3=A1(I):GOSUB20310:GOTO20260
20255 IFVAL(T2$(I))=JTHENTC=TC+A2(I):A3=A2(I):GOSUB20310
20260 NEXT:PRINT#1,P1$T$"36";"TOTAL =";TC
20270 PRINT#1,P2$;
20280 PRINT#1,L$:NEXT:CLOSE1:RUN
20300 J$=STR$(J):A=LEN(J$):J$=RIGHT$(J$,A-1)+". "
20302 PRINT#1,P1$;J$;CA$(J);CHR$(27);CHR$(27);
20305 PRINT#1,CHR$(73):RETURN
20310 GOSUB21400
20311 PRINT#1,MK$(I);CHR$(9);I$;CHR$(9);LEFT$(DA$(I),4);CHR$(9);CH$(I);
20312 PRINT#1,CHR$(9);LEFT$(PA$(I),24);CHR$(9)A3;CHR$(9)DS$(I);
20320 PRINT#1,CHR$(9);LEFT$(M1$(I),25):RETURN
20500 :
20510 REM COLUMN HEADING FOR CATEGORYS
20520 :
20530 PRINT#1,P1$;CHR$(31)TAB(18)"CATEGORIES";CHR$(30):PRINT#1
20535 PRINT#1,"X";CHR$(9);"R#";CHR$(9);"DATE";CHR$(9)"CHK#";
20540 PRINT#1,CHR$(9)"PAYEE";CHR$(9)" DBMT";CHR$(9)"#D";
20550 PRINT#1,CHR$(9)"MEMO":PRINT#1,P2$;L$:RETURN
21000 :
21010 REM PRINT COLUMN HEADING FOR REPORT
21020 :
21030 PRINT#1,"X";CHR$(9);"R#";CHR$(9);"DATE";CHR$(9);"CHK#";
21035 PRINT#1,CHR$(9)"PAYEE";CHR$(9);" AMOUNT";CHR$(9);"D1";CHR$(9);"D2";
21040 PRINT#1,CHR$(9);"MEMO";CHR$(9)" BALANCE":PRINT#1,P2$;L1$:RETURN
21100 :
21110 REM PRINT CHECK DATA MAIN LIST
21120 IFPA$(I)="D"THENTB=TB+AM(I):TB=FN R2(TB):GOSUB21400:GOTO21160
21130 TB=TB-AM(I):TB=FN R2(TB):GOSUB21400
21160 PRINT#1,MK$(I);CHR$(9);I$;CHR$(9);LEFT$(DA$(I),4);CHR$(9);CH$(I);
21167 P$=LEFT$(PA$(I),24):IFPA$(I)="D"THENP$="*** DEPOSIT ***"
21170 PRINT#1,CHR$(9);P$;CHR$(9);AM(I);CHR$(9);T1$(I);CHR$(9);T2$(I);
21180 PRINT#1,CHR$(9);LEFT$(M1$(I),25);CHR$(9);TB:RETURN
21200 :
21201 REM ENTER YEAR AND MONTH
21202 :
21203 PRINT"[147]"TAB(12)"END MONTH SUMMARY"
21205 PRINTTAB(22)"MMYY"
21210 PRINT"ENTER MONTH AND YEAR";:INPUTDA$:M$=LEFT$(DA$,2):Y$=MID$(DA$,3,2)
21220 Y=VAL(Y$):M=VAL(M$)
21240 MY$=M$+Y$:GOSUB8000:RETURN
21300 PRINT#1,CHR$(27)"W"CHR$(96)CHR$(28):RETURN:REM SET 12 CPI
21310 PRINT#1,CHR$(27);CHR$(27)CHR$(9);"003,007,012,017,042,053,056,059,085";
21320 PRINT#1,CHR$(13):RETURN :REM SET TABS
21400 I$=STR$(I):A=LEN(I$):I$=RIGHT$(I$,A-1):IFA=2THENI$="00"+I$
21410 IFA=3THENI$="0"+I$
21420 RETURN:REM PAD REC# WITH 0'S
22000 :
22010 REM DISPLAY 2 DECIMALS
22020 :
22030 RD=FNR2(RD):RD$=STR$(RD):A=LEN(RD$):IFA=2THEN22070
22040 Z$=MID$(RD$,A-2,2)
22050 IFLEFT$(Z$,1)="."THEN22080
22060 IF RIGHT$(Z$,1)="."THENRD$=RD$+"0":GOTO22080
22070 RD$=RD$+".00"
22080 A=LEN(RD$):RD$=RIGHT$(RD$,A-1):RETURN
23000 :
23002 REM RECONCILE CHKBK & STATEMENT
23003 :
23005 REM ENTER STATEMENT ENTRIES
23010 PRINT"[147]";TAB(2)"[158]RECONCILE CHECKBOOK WITH STATEMENT"
23012 OPEN1,4
23014 INPUT"ENTER STATEMENT BALANCE";SB
23015 INPUT"ENTER STATEMENT DATE (MMYY)";EM$:EM$=RIGHT$(EM$,2)+LEFT$(EM$,2)
23017 PRINT"[158] (^ = EDIT PRIOR ENTRY) (_ = DONE)"
23020 :
23030 PRINT"[156] ENTER ALL CHKS/AMTS SHOWN ON STATEMENT":I=0
23032 PRINT"[158]* = 'CHECK #' FOR DEPOSIT":PRINT"- = 'CHECK #' FOR NON CHK/DEP"
23034 PRINT"# ITEMS"
23035 I=I+1
23040 IFI=0THENI=1
23041 PRINT""I"[145]";:PRINTTAB(10)"CHECK #";:INPUTRC$(I):A=VAL(RC$(I))
23042 IFRC$(I)="*"ORRC$(I)="-"THEN23050
23043 IF RC$(I)="^"THEN I=I-1:PRINT"[145][145][145][145][145][145]":GOTO23040
23046 IF RC$(I)="_" THEN HR=I-1:GOTO23200
23048 IFA<1000 OR A>10000 THEN PRINT"[145][145][145]":GOTO23041
23050 PRINTTAB(10);
23060 INPUT"AMOUNT ";AN$:RA(I)=VAL(AN$):IFRA(I)=<0THENPRINT"[145][145]":GOTO23050
23070 GOTO23035
23200 PRINT#1,CHR$(31)" RECONCILE CHECKBOOK WITH STATEMENT";CHR$(30):PRINT#1
23201 LN=LEN(OW$):PRINT#1,TAB(FNCP(LN));OW$
23202 PRINT#1:PRINT#1:PRINTD$;"PLEASE STANDBY, RECONCILING ...[145]"
23205 UD=0:UC=0:Q=0
23210 Q=Q+1:MY$=NM$(Q):YM$=RIGHT$(MY$,2)+LEFT$(MY$,2):IFYM$>EM$ORQ>NMTHEN23605
23215 GOSUB8000:REM LOOP OF ACTIVE MONTHS
23225 PRINT#1,P1$"MONTH --> ";MY$;P2$
23230 PRINT#1:FOR J=1TOHE:K=0:REM LOOP REC/MONTH
23240 IF MK$(J)="X"THEN 23500:REM REC MARKED SO SKIP
23245 K=K+1:IFK>HRTHEN23500:REM K=STATEMENT ENTRY#, IF END LIST THEN NEXT REC#
23250 IF SM$(K)="X"THEN23245:REM STMT ENTRY MARKED SO SKIP IT
23270 REM COMPARE CHK# WITH STMT ENTRY#
23280 IF CH$(J)<>RC$(K)THEN23245:REM DON'T - MATCH
23290 IFAM(J)=RA(K)THENMK$(J)="X":SM$(K)="X":GOTO23500:REM +MATCH ,SO MARK
23300 IF VAL(CH$(J))=0THEN23245
23310 PRINT#1,"AMOUNT MISMATCH ERROR, REC#";J;" CHECK# ";CH$(J)
23500 NEXT
23510 REM TOTAL UNMARKED CHECKS/DEPOSIT
23512 PRINT#1,P1$;
23515 PRINT#1,T$"20LIST OF UNMARKED RECORDS FOR THIS MONTH"
23516 PRINT#1,P2$;:PRINT#1,L$
23517 XX$(Q)="X":REM DEFAULT ALL ENTRIES MARKED UNLESS LINE 23535 REACHED
23520 FORJ=1TOHE
23530 IFMK$(J)="X"THEN23570:REM MARKED SO SKIP
23535 XX$(Q)="-" :REM UNMARKED ENTRY FOUND
23540 IFCH$(J)="*"THEN UD=UD+AM(J):GOSUB23950:GOTO23570
23550 UC=UC+AM(J):GOSUB23950:GOTO23570
23570 NEXT:PRINT#1,L$:PRINT#1:GOSUB8500
23600 GOTO 23210
23605 GOSUB23700
23610 RB=BA-UD+UC:RB=FNR2(RB):DF=RB-SB:DF=FNR2(DF)
23612 PRINT#1,P5$"05";"CHECKBOOK BALANCE:";T$"32";BA
23613 PRINT#1,T$"27-";T$"30";UD;T$"43(UNMARKED DEPOSITS)"
23614 PRINT#1,T$"27+";T$"30";P3$;UC;
23615 PRINT#1,P4$T$"45";"(UNMARKED CHECKS)"
23616 PRINT#1,T$"27=";T$"30";RB;T$"43(RECONCILED BALANCE)"
23617 PRINT#1:PRINT#1,"STATEMENT BALANCE ";T$"30";SB:PRINT#1
23618 PRINT#1,P1$
23620 IFABS(SB-RB)<.001THENPRINT#1,"CHECKBOOK AGREES WITH STATEMENT":GOTO23650
23630 IFDF>0THENPRINT#1,"CHECKBOOK IS";DF" GREATER THAN THE STATEMENT":GOTO23650
23640 PRINT#1,"CHECKBOOK IS"; -(DF);" LESS THAN THE STATEMENT"
23650 PRINT#1,P2$:CLOSE1:GOSUB23800:GOSUB6400:RUN
23700 REM PRINT STATEMENT ENTRIES ROUTINE
23702 PRINT#1,P5$"05"
23703 PRINT#1,P1$T$"20LIST OF STATEMENT ENTRIES"
23704 PRINT#1,P2$
23705 PRINT#1,"ENTRY#";T$"10CHECK#";T$"21AMOUNT";T$"30MARKER"
23710 PRINT#1,L$:FORL=1TOHR:PRINT#1,L;T$"10";RC$(L);T$"20";RA(L);
23720 PRINT#1,T$"30";SM$(L):NEXT:PRINT#1,L$:RETURN
23800 REM UPDATE ACTIVE MONTHS LIST
23810 J=1
23820 FORQ=1TONM
23830 IF XX$(Q)="-"THEN TM$(J)=NM$(Q):J=J+1
23840 NEXT:NM=J-1
23850 FOR Q=1TONM:NM$(Q)=TM$(Q):NEXT:RETURN
23900 REM ADD NEW MONTH TO ACTIVE LIST
23902 REM CHECK FOR OLD INACTIVE MONTH
23904 I=1
23905 IFMK$(I)="-"THEN23910:REM ACTIVE MONTH
23906 IFI=HE THEN RETURN:REM OLD INACTIVE MONTH (DON'T ADD TO LIST)
23908 I=I+1:GOTO23905
23910 I=1
23915 IFNM$(I)=MY$THENRETURN
23920 I=I+1:IFI>NM THENNM=NM+1:NM$(NM)=MY$:RETURN
23930 GOTO23915
23950 REM PRINT REC ROUTINE
23960 PRINT#1,J;T$"10";CH$(J);T$"20";PA$(J);
23965 PRINT#1,T$"50";AM(J):RETURN
24000 REM
24010 REM QUARTERLY AND ANNUAL SUMMARIES
24020 DATA 01,02,03,04,05,06,07,08,09,10,11,12:OPEN1,4:PRINT#1,ES$;CHR$(53);
24025 DEFFNPC(X)=INT((X/AM(31)*100)*10+.5)/10
24030 FORI=1TO12:READMN$(I):NEXT:SM(1)=1:SM(2)=4:SM(3)=7:SM(4)=12
24040 INPUT"[147]ENTER THE YEAR (YY)";YE$:IFYE$<"85"THEN24040
24050 INPUT"ENTER THE QUARTER (1-4)";Q:IFQ<1ORQ>4THEN24050
24060 IFQ=1THENB1=1:E1=3:GOTO24100
24070 IFQ=2THENB1=4:E1=6:GOTO24100
24080 IFQ=3THENB1=7:E1=9:GOTO24100
24090 IFQ=4THENB1=10:E1=12:GOTO24100
24100 FORZ=B1TOE1:GOSUB24300:NEXT:IFQ=5THEN24120
24110 PRINT#1,P1$;OW$:PRINT#1:PRINT#1,"QUARTER #";Q;" 19";YE$:PRINT#1,P2$
24120 PRINT#1,"BEGINNING BALANCE =";B2
24130 PRINT#1,"ENDING BALANCE =";BA
24140 PRINT#1,"TOTAL CHECKS =";AM(31)
24150 PRINT#1,"TOTAL DEPOSITS =";AM(0):PRINT#1
24155 PRINT#1,P1$;"CATEGORY";T$"35";"AMOUNT";T$"50";"% OF TOTAL";P2$:PRINT#1,L$
24156 FORI=1TOHC:PRINT#1,CA$(I);T$"35";AM(I);T$"50";FNPC(AM(I)):NEXT
24160 IFQ=4THENQ=5:B1=1:B2=12:GOSUB19000:GOTO24170
24165 FORI=1TO15:CLOSEI:NEXT:RUN
24170 PRINT#1,CHR$(12);P1$;OW$:PRINT#1
24180 PRINT#1,"ANNUAL SUMMARY 19";YE$:PRINT#1,P2$:GOTO24100
24300 REM READ TOTALS FROM DATA FILE
24310 OPEN15,8,15:OPEN8,8,8,"MAIN DATA"+MN$(Z)+YE$:GOSUB7000
24320 INPUT#8,BA:INPUT#8,BB:IFZ=B1THENB2=BB
24330 FORI=0TO31:INPUT#8,TT(I):AM(I)=AM(I)+TT(I):NEXT:CLOSE8:CLOSE15:RETURN
39000 END
40000 SAVE"@0:CB/V1.17",8:VERIFY"CB/V1.17",8